A chatbot, also referred to as a bot, a chatterbot, an agent, etc., is a computer program which conducts a conversation via audio and/or textual communications. The bot is typically designed to be an automated service that simulates communication from a human conversational partner. Bots are commonly used in dialog systems for purposes such as customer support, human resources, information acquisition, points of contact, and other enterprise-oriented services. Chatbots typically operate with a defined set of rules and parameters which are controlled by the service or platform that hosts the chatbot. For example, chatbots can be hosted on platforms such as a web chat service, a social networking service, a text messaging service, and the like.
Different chatbot engines or vendors such as IBM® CONVERSATION, GOOGLE® API.AI, MICROSOFT® LUIS, AMAZON® LEX, and FACEBOOK® MESSENGER, provide different benefits. However, each of these chatbot vendors communicates based on different communication protocols, provides access to different services, performs separate authentication, and the like. Therefore, a developer typically designs a software application that is able to interact with a single bot engine because designing an application that is capable of interacting with multiple bot engines can be very difficult if not impractical. Instead, the developer typically generates multiple versions of the application for interacting with multiple bot engines where each version is dedicated to communicating with a different bot engine.